Today, users perform a variety of actions through processor-enabled devices over a variety of network connections (wired and/or wireless). In fact, users now rely on mobile devices having WiFi or cellular connections to the Internet for a variety of tasks, such as navigation directions, searching for information, interacting and performing operations with an enterprise-specific mobile application that interfaces through the wireless network connection to a backend enterprise system.
Although processor speed, the size of available memory, and storage have significantly been improved in recent years for phones, a typical user still experiences noticeable lags in response times from his/her phone in response to a requested task because often the user is running a variety of applications in the background on the processor of the phone for which the user is completely aware of.
For example, some tasks may be required by the Operating System (OS) of the phone; some tasks, the user failed to properly configure the settings for and as a result are initiated and executed on the phone when the phone is powered off and on or when the phone is booted; some tasks, the user manually initiated on the phone and then moved on to a different task without manually terminating the originally initiated tasks; and some tasks the user is presently interacting with and wants those tasks to be executing on the phone.
In addition, everyone has experienced less than optimal cell phone or WiFi service (either because of bandwidth issues of because of weak wireless signals and connections). This also reduces user's response times to tasks, especially since many tasks executed on the phone are relying on communications between the phone and a network device's service.
Users are almost incessantly using their phones for performing a variety of device-only tasks and enterprise-specific tasks over wireless connections. Furthermore, the enterprise-specific tasks are repetitively performed by the users with varying degrees of frequency.
Caching permits processor-enabled devices to: improve processor throughput, reduce Input/Output (I/O) storage load, and improve response times of operations (thereby improving user response time). However, existing caching techniques, by and large, are focused on retaining most frequently accessed data from storage in cache and retaining more recently accessed data from storage in cache for some limited period of time.
However, these existing caching techniques are application and user-behavioral agnostic; meaning the techniques are performed based on a current state of the device and current usage of the device and with respect to just those applications that are actually executing on the device.
Therefore, there is a need for improved caching techniques, which more intelligently provide caching services for a device based on behaviors of the user with respect to specific applications that execute on the device so that: processing throughput on the device improves, loading of storage for the device improves, and application responsiveness to interactions with the user improves.